home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / profil / profile.bas < prev   
BASIC Source File  |  1995-05-09  |  5KB  |  97 lines

  1. ' -----------------------------------------------------------------------------------------
  2. ' Application Profile Routines for Microsoft Visual Basic
  3. ' -----------------------------------------------------------------------------------------
  4. '
  5. ' The routines contained in this module permit simple manipulation of the application
  6. ' profile entries maintained by Windows in the WIN.INI file.  See each routine for usage
  7. ' information.
  8. '
  9. ' The code contained in these routines is hereby released to the public domain.  It may
  10. ' be freely used, modified, and/or distributed.  The author accepts no responsibility for
  11. ' the use/misue of these routines.
  12. '
  13. ' Author  :  Rob Vance  (CIS: 70003,5674)
  14. ' Version :  1.00
  15. ' Created :  July 16, 1991
  16. ' Released:  July 19, 1991
  17. '------------------------------------------------------------------------------------------
  18. '
  19.  
  20. '
  21. '  User Profile Routines (provided by the Microsoft Windows Kernel DLL)
  22. '
  23. Declare Function GetProfileInt Lib "Kernel" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Integer) As Integer
  24. Declare Function GetProfileString Lib "Kernel" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer) As Integer
  25. Declare Function WriteProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String) As Integer
  26. Declare Function GetPrivateProfileInt Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer
  27. Declare Function GetPrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
  28. Declare Function WritePrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String) As Integer
  29. Declare Function GetWindowsDirectory Lib "Kernel" (ByVal lpBuffer As String, ByVal nSize As Integer) As Integer
  30. Declare Function GetSystemDirectory Lib "Kernel" (ByVal lpBuffer As String, ByVal nSize As Integer) As Integer
  31.  
  32. Const MAX_STRING_LEN = 255
  33.  
  34. Function Get_Profile_String (AppName$, KeyName$, KeyDefault$, KeyValue$) As Integer
  35.     '
  36.     ' -- Get the profile entry specified, returning the string in KeyValue$ and the length
  37.     '    of the string in the function name.  If the profile entry is not found, then the
  38.     '    default string is returned.
  39.     '
  40.     '    Profile entries are generally stored in the WIN.INI file in the \WINDOWS directory
  41.     '    and have the following format:
  42.     '
  43.     '    [application name]
  44.     '    ProfileEntry=Stringval
  45.     '        :
  46.     '        :
  47.     '
  48.     '    Parameters:
  49.     '        AppName$       Corresponds to the [application name]
  50.     '        KeyName$       Name of the profile entry to retrieve (ProfileEntry)
  51.     '        KeyDefault$    Value to be returned if profile entry cannot be retreived
  52.     '        KeyValue$      Return value; stringval if located, KeyDefault$ if not found.
  53.     '
  54.     '    Note:
  55.     '        The maximum string length retreivable by this routine is set to MAX_STRING_LEN
  56.     '        (see module declarations).
  57.     '
  58.     KeyValue$ = Space$(MAX_STRING_LEN)
  59.     Get_Profile_String = GetProfileString(AppName$, KeyName$, KeyDefault$, KeyValue$, Len(KeyValue$))
  60.     KeyValue$ = LTrim$(RTrim$(KeyValue$))
  61.  
  62.     ' -- Strip the trailing NULL character from the string (it tends to make string comparisons
  63.     '    more difficult when it is left on)
  64.     '
  65.     KeyValue$ = Mid$(KeyValue$, 1, Len(KeyValue$) - 1)
  66. End Function
  67.  
  68. Function Put_Profile_String (AppName$, KeyName$, KeyValue$)
  69.     '
  70.     ' -- Store the profile entry specified.  If the profile entry is found, its corresponding
  71.     '    value is updated, otherwise the profile entry is created.  This function returns
  72.     '    TRUE if the update was successful, otherwise FALSE.
  73.     '
  74.     '    Profile entries are generally stored in the WIN.INI file in the \WINDOWS directory
  75.     '    and have the following format:
  76.     '
  77.     '    [application name]
  78.     '    ProfileEntry=Stringval
  79.     '        :
  80.     '        :
  81.     '
  82.     '    Parameters:
  83.     '        AppName$       Corresponds to the [application name]
  84.     '        KeyName$       Name of the profile entry to write (ProfileEntry)
  85.     '        KeyValue$      New value for the profile entry (Stringval)
  86.     '
  87.     '
  88.     status% = WriteProfileString(AppName$, KeyName$, KeyValue$)
  89.  
  90.     If (status% <> 0) Then
  91.         Put_Profile_String = True
  92.     Else
  93.         Put_Profile_String = False
  94.     End If
  95. End Function
  96.  
  97.